package com.rede.didiok.pay.entity;

import java.math.BigDecimal;

import lombok.Data;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.rede.didiok.common.dto.user.UserDto;
import com.rede.didiok.common.entity.SuperEntity;
import com.rede.didiok.common.schema.ProductDto;

/**
 * 支付订单实体
 */
@Data
@TableName("p_pay_order")
public class PayOrderEntity extends SuperEntity<PayOrderEntity> {

    private static final long serialVersionUID = 1L;
    /**
     * 销售订单号
     * j_trade_order_goods_fin.trade_no
     *
     */
    @javax.validation.constraints.Size(max = 30, message = "orderNo最大长度为30")
    private String orderNo;

    /**
     * RankMember唯一oid【自动递增】
     */
    private Integer resourceOid;

    /**
     * 用户uid
     */
    private String createUserUid;

    /**
     * 商家用户id
     */
    private String merchantUserUid;


    /**
     * 订单状态：0：待支付，1：服务中，2：已完成，3：已取消
     */
    private Integer orderStatus;

    /**
     * 支付类型:  1: 积分支付, 2: 现金支付
     */
    private Integer payType;

    /**
     * 支付方式：0：默认 1: 支付宝, 2: 微信 3: 第三方支付宝 4: 第三方微信
     */
    private Integer payMethod;

    /**
     * 资源uid
     */
    private String resourceUid;

    /**
     * 商品类型
     */
    private String resourceType;

    /**
     * 订单金额（单位元）
     */
    private BigDecimal totalPrice;

    /**
     * 资源标题
     */
    private String  title;

    /**
     * 资源描述
     */
    private String summary;

    /**
     * 商品价格
     */
    private BigDecimal productPrice;

    /**
     * 商品数量
     */
    private Integer productNum;

    /**
     * 商品快照
     */
    private String snapshot;

    /**
     * 报名人员姓名
     */
    private String applyUserName;
    /**
     * 身份证号
     */
    private String idCard;
    /**
     * 性别(1:男2:女)
     */
    private String gender;
    /**
     * 手机号
     */
    private String phone;
    /**
     * 微信号
     */
    private String weChat;
    /**
     * 年龄
     */
    private Integer age;
    /**
     * 备注
     */
    private String remark;
    /**
     * 报名人员个数
     */
    private Integer applyUserNum;
    /**
     * 报名类型(1玩家报名 2领队报名)
     */
    private Integer applyType;

    /**
     * 报名订单取消的原因
     */
    private String cancelReason;

    // 以下字段不存入数据库
    /**
     * 商品信息
     */
    @TableField(exist = false)
    private ProductDto productVO;

    /**
     * 下单人用户信息
     */
    @TableField(exist = false)
    private UserDto user;

    /**
     * RankMember唯一oid【自动递增】
     */
    @TableField(exist = false)
    private Integer oid;
    /**
     * 活动的标题图
     */
    @TableField(exist = false)
    private String photoUrl;

    /**
     * 资源新标题
     */
    @TableField(exist = false)
    private String  newTitle;

    /**
     * 活动主办方用户uid
     */
    @TableField(exist = false)
    private String organizerUserUid;

    /**
     * 报名类型(1玩家报名 2领队报名)
     */
    @TableField(exist = false)
    private String applyTypeName;

    /**
     * 报名订单取消人姓名
     */
    @TableField(exist = false)
    private String userName;

    /**
     * 当前时间戳(调用蓝兔支付使用)
     */
    @TableField(exist = false)
    private String timestamp;

    /**
     * 支付通知地址(调用蓝兔支付使用)
     */
    @TableField(exist = false)
    private String notifyUrl;

    /**
     * 签名(调用蓝兔支付使用)
     */
    @TableField(exist = false)
    private String sign;
}
